﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace SksApp
{
    public partial class frmMusteri : Form
    {
        public EventHandler Event { get; set; }
        public string CariKodu { get; set; }

        public frmMusteri()
        {
            InitializeComponent();
            this.Load += new EventHandler(frmMusteri_Load);
        }

        void frmMusteri_Load(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(CariKodu))
            {
                CariBul(CariKodu);
            }
        }

        private void btnKapat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void Temizle()
        {
            txtKodu.Text = "";
            txtAdi.Text = "";
            txtAdres.Text = "";
            txtFiyatNo.Text = "";
            txtTelefon.Text = "";
            txtVergiDaire.Text = "";
            txtVergiNo.Text = "";
        }

        private void CariBul(string cariKodu)
        {
            Temizle();
            using (SksEntity ent = new SksEntity())
            {
                Musteri ms = ent.Musteriler.Where(x => x.Kodu == cariKodu).FirstOrDefault();
                if (ms != null)
                {
                    txtKodu.Text = ms.Kodu;
                    txtAdi.Text = ms.Adi;
                    txtAdres.Text = ms.Adres;
                    txtFiyatNo.Text = ms.FiyatNo.ToString();
                    txtVergiDaire.Text = ms.VergiDairesi;
                    txtVergiNo.Text = ms.VergiNo;
                    txtTelefon.Text = ms.Telefon;
                }
            }
        }

        private void btnKaydet_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(txtKodu.Text) && !string.IsNullOrEmpty(txtAdi.Text))
            {
                using (SksEntity ent = new SksEntity())
                {
                    Musteri ms = ent.Musteriler.Where(x => x.Kodu == txtKodu.Text).FirstOrDefault();
                    if (ms != null)
                    {
                        ms.Adi = txtAdi.Text;
                        ms.Adres = txtAdres.Text;
                        ms.FiyatNo = Cevir.Parse<int>(txtFiyatNo.Text);
                        ms.IndirimOrani = 0;
                        ms.KartNo = "";
                        ms.VergiDairesi = txtVergiDaire.Text;
                        ms.VergiNo = txtVergiNo.Text;
                        ms.Telefon = txtTelefon.Text;
                    }
                    else
                    {
                        ms = new Musteri();
                        ms.Kodu = txtKodu.Text;
                        ms.Adi = txtAdi.Text;
                        ms.Adres = txtAdres.Text;
                        ms.FiyatNo = Cevir.Parse<int>(txtFiyatNo.Text);
                        ms.IndirimOrani = 0;
                        ms.KartNo = "";
                        ms.VergiDairesi = txtVergiDaire.Text;
                        ms.VergiNo = txtVergiNo.Text;
                        ms.Telefon = txtTelefon.Text;
                        ent.Musteriler.Add(ms);
                    }
                    ent.SaveChanges();
                }

                Temizle();
            }
        }

        private void btnSil_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(txtKodu.Text) && !string.IsNullOrEmpty(txtAdi.Text))
            {
                using (SksEntity ent = new SksEntity())
                {
                    Musteri ms = ent.Musteriler.Where(x => x.Kodu == txtKodu.Text).FirstOrDefault();
                    if (ms != null)
                    {
                        ent.Musteriler.Remove(ms);
                    }
                    ent.SaveChanges();
                }

                Temizle();
            }
        }

        private void txtKodu_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                if (!string.IsNullOrEmpty(txtKodu.Text))
                {
                    CariBul(txtKodu.Text);
                }
            }
        }

        private void frmMusteri_FormClosed(object sender, FormClosedEventArgs e)
        {
            this.Event.Invoke(null, null);
        }
    }
}
